home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 3 / Amiga Tools 3.iso / rexx / ppage2azur.pprx < prev    next >
Text File  |  1995-02-07  |  3KB  |  85 lines

  1. /** $VER: PPage2AZur.pprx 1.1 (7.2.95)
  2.  **
  3.  ** Ce script permet à ProPage d'utiliser AZur au lieu de
  4.  ** "Article Editor" pour éditer le texte de la boite active
  5.  ** (de l'ensemble des boites liées entre elles).
  6.  **
  7.  ** Il s'utilise en tant que "Genie" ProPage. Il faut donc le
  8.  ** dire à ProPage avec l'option Import de sa requête des Genies.
  9.  **
  10.  ** Lorsqu'on sauvegarde sous AZur pour revenir dans ProPage,
  11.  ** pour conserver les paragraphes il faut utiliser le menu :
  12.  **                     "Projet/Sauver PPage"
  13.  ** et puis ensuite fermer la fenêtre.
  14.  **
  15.  ** ATTENTION : dû à une limitation dans les commandes ProPage
  16.  ** qui servent à insérer le texte, ce script ne fonctionne que
  17.  ** si le texte à insérer fait moins de 32737 caractères.
  18.  ** Sinon utilisez ArticleEditor...
  19.  **/
  20.  
  21. OPTIONS RESULTS
  22.  
  23. state = ppm_GetState()
  24. IF (WORD( state, 1 )) = 3 THEN CALL ppm_EndEdit()
  25.  
  26. CALL ppm_AutoUpdate(0)
  27. tmpfile = "RAM:EditionProPage"
  28. ppport = ADDRESS()
  29.  
  30. activebox = ppm_BoxNum()
  31. IF (activebox = 0) THEN exit_msg( "Il faut une boite de texte active" )
  32.  
  33. arttext = ppm_GetArticleText(,1)
  34.  
  35. ADDRESS AZURMAST File2NewWin WIDTH 640 CREATE '"'tmpfile'"'
  36. IF (RC > 0) THEN exit_msg( "Impossible de démarrer une fenêtre AZur" )
  37. azurport = RESULT
  38. ADDRESS VALUE azurport
  39.  
  40. /*-----------------------*/
  41. Text2Win NOCURS arttext
  42. SetPrefs LEFTMARGIN 0 RIGHTMARGIN 75 USEMARGINS ON SHOWEOL ON SHOWEOF ON AUTOFORMAT ON TAB2SPACE OFF SPACE2TAB OFF
  43. Block ALL
  44. TextFormat
  45. SetModified OFF
  46.  
  47. /* attend la fermeture de la fenêtre AZur */
  48. DO WHILE (SHOW( 'P', azurport ) ~= 0)
  49.     ADDRESS COMMAND 'Wait >Nil: 1 SEC'
  50. END
  51. ADDRESS VALUE ppport
  52. CALL ppm_PPageToFront()
  53.  
  54. IF (EXISTS( tmpfile )) THEN DO
  55.     IF (OPEN( 'file', tmpfile, 'R' )) THEN DO
  56.         CALL SEEK( 'file', 0, 'B' ); size = SEEK( 'file', 0, 'E' ); CALL SEEK( 'file', 0, 'B' );
  57.         IF (size > 0) THEN DO
  58.             arttext = READCH( 'file', size )
  59.             CALL ppm_DeleteContents( activebox )
  60.             CALL ppm_TextIntoBox( activebox, arttext ) /* ne fonctionne pas pour plus de 32000 caractères */
  61.             /*
  62.             CALL ppm_SetEdit( activebox )
  63.             blocksize = 30000
  64.             DO WHILE (size > 0)
  65.                 IF (size < blocksize) THEN blocksize = size
  66.                 CALL ppm_InsertText( SUBSTR(arttext,size-blocksize+1,blocksize) )
  67.                 size = size - blocksize
  68.             END
  69.             */
  70.         END
  71.         CALL CLOSE( 'file' )
  72.     END
  73.     ADDRESS COMMAND 'Delete >Nil:' tmpfile||'#?'
  74. END
  75. /*-----------------------*/
  76.  
  77. EXIT
  78.  
  79. exit_msg:
  80. DO
  81.     PARSE arg msg
  82.     CALL ppm_GetUserText( 1, msg )
  83.     EXIT
  84. END
  85.